草庐IT

java - 处理 UTF-8 编码

全部标签

ruby - 使用 Ruby 将 UTF8 转换为 ANSI

我有一个Ruby脚本,它在Linux机器上远程生成一个UTF8CSV文件,然后通过SFTP将该文件传输到Windows机器。然后我需要用Excel打开这个文件,但是Excel没有UTF8,所以我总是需要在能够将UTF8转换为ANSI的文本编辑器中打开这个文件。我很乐意使用Ruby以编程方式执行此操作并避免手动转换步骤。最简单的方法是什么?PS:我尝试使用iconv但没有成功。 最佳答案 ascii_str=yourUTF8text.unpack("U*").map{|c|c.chr}.join假设您的文本确实适合ascii字符集。

ruby - 如何将 UTF8 组合字符转换为 ruby​​ 中的单个 UTF8 字符?

一些字符,例如Unicode字符'LATINSMALLLETTERCWITHCARON'可以编码为0xC40x8D,但也可以用'LATINSMALLLETTERC'和'COMBININGCARON',即0x630xcc0x8c。更多信息在这里:http://www.fileformat.info/info/unicode/char/10d/index.htm我想知道是否有一个库可以将“LATINSMALLLETTERC”+“COMBININGCARON”转换为“LATINSMALLLETTERCWITHCARON”。或者是否有包含这些转化的表格? 最佳答案

ruby-on-rails - ActionView::Template::Error(不兼容的字符编码:UTF-8 和 ASCII-8BIT)

我正在使用Ruby1.9.2、Rails3.0.4/3.0.5和PhusionPassenger3.0.3/3.0.4。我的模板是用HAML编写的,我使用的是MySQL2gem。我有一个Controller操作,当传递一个具有特殊字符(如变音符号)的参数时,会出现以下错误:ActionView::Template::Error(incompatiblecharacterencodings:UTF-8andASCII-8BIT)错误指向我的HAML模板的第一行,其中包含以下代码:我的理解是,这是因为我有一个UTF-8字符串与一个ASCII-8BIT字符串连接在一起,但我终究无法弄清楚那个

ruby-on-rails - 在 RoR 中对 UTF-8 字符串进行排序

我正试图找出一种在RubyonRails中对UTF-8字符串进行排序的“正确”方法。在我的应用程序中,我有一个填充了国家/地区的选择框。由于我的应用程序已本地化,每个现有的语言环境都有一个countries.yml文件,该文件将国家的ID与该国家/地区的本地化名称相关联。我无法在yml文件中手动对字符串进行排序,因为我需要ID在所有语言环境中保持一致。我所做的是创建一个使用unidecode的ascii_name方法gem将重音字符和非拉丁字符转换为对应的ascii字符(例如,“Afeganistão”将变为“Afeganistao”),然后对其进行排序:require'unideco

ruby-on-rails - 为什么我会收到从 ASCII-8BIT 到 UTF-8 的字符串编码问题 "\xE2"?

我正在尝试从电子邮件下载PDF并将内容写入文件。出于某种原因,我收到此错误:AnEncoding::UndefinedConversionErroroccurredinattachments#inbound:"\xE2"fromASCII-8BITtoUTF-8app/controllers/api/attachments_controller.rb:70:in`write'这是我的代码:definboundifRails.env.production?orRails.env.staging?email=Postmark::Mitt.new(request.body.read)else

ruby-on-rails - 将 Ruby Gems 类比为 Java JAR 是否有效?

我相信我已经非常清楚和简洁地提出了这个问题。我为什么要问?我要向学生解释RubyonRails框架,这需要我对Java世界做一些类比(因为该类(class)非常以Java为中心)。我没有RubyonRails的实践经验,但我觉得Gem/Jar类比是有效的。谁能进一步阐明这个问题? 最佳答案 作为一个简短的回答,我会说:是的,它是有效的。作为一个长答案,我会说:是的,它是有效的,但您可能还想描述一些重要的区别。jar有一些与gem截然不同的品质。JAR是打包的可执行库,您通常必须在调用时在Java程序的执行中显式声明依赖项(通过在调用

ruby - 在 Heroku 中将 UTF-8 设置为默认字符串编码

我需要在Heroku中将默认的ruby​​字符串编码更改为UTF-8。由于某种原因,它是US-ASCII。$herokuconsoleRubyconsoleformyapp.heroku.com>>"a".encoding=>#但是,如果我在本地运行irb,我会得到不同的结果:$irbruby-1.9.2-p136:001>"a".encoding=>#两者都在ruby​​1.9.2上运行。我也试过设置这个,但没用:Encoding.default_internal=Encoding.default_external="UTF-8"想法?谢谢,菲利普 最佳答

ruby - 在 Ruby/Rails 中,如何对 URL 中的特殊字符进行编码/转义?

在使用OpenURIopen(url)之前如何对URL进行编码或“转义”?我们正在使用OpenURI打开远程url并返回xml:getresult=open(url).read问题是URL包含一些包含空格和其他字符的用户输入文本,可能包括“+”、“&”、“?”等,因此我们需要安全地对URL进行转义。我在使用Net::HTTP时看到了很多示例,但没有找到任何用于OpenURI的示例。我们还需要能够对在session变量中收到的类似字符串进行反转义,因此我们需要倒数函数。 最佳答案 不要使用URI.escape,因为它已在1.9中弃用。

ruby - 您如何使用 ptrace 对在 Rails 中运行的不受信任的代码进行沙盒处理?

假设我有这个糟糕的Controller代码:classMovesController一段时间以来,我一直在寻找一种最好的方法来沙箱化不受信任的代码的执行,并偶然发现了这个ruby​​-lang特性中的讨论:https://bugs.ruby-lang.org/issues/8468TherealsolutiontothisproblemistorunasandboxatthelevelaboveRuby.Irununtrustedcodeonhttp://eval.ininsideaptracebasedsandbox.CharlieSomerville对该主题的进一步研究并没有得到比

ruby - 如何在 Ruby 中删除 4 字节的 utf-8 字符?

由于MySQL的utf8不支持4字节字符,我正在寻找一种方法来检测和消除Ruby字符串中的任何4字节utf8字符。我知道我可以更新我的表以使用utf8m4,但由于一些不可能或所需的解决方案的原因。简单地将字符串编码为ASCII会删除这些字符,但也会删除所有其他非ASCII字符,这并不好。 最佳答案 以下似乎适用于Ruby1.9.3:input.each_char.select{|c|c.bytes.count例如:input="hello\xF0\xA9\xB6\x98world"#includesU+29D98input.each